// 输入1个无符号的十进制整数，将其转换成二进制，并输出。（10分）
// 题目内容：

// 从键盘输入1个小于65536的无符号的十进制整数，将其转换成16位二进制，并输出。

// 具体要求完成的功能如下：

// 1）如输入负数，则输出 “数据小于0”

// 2）如超过65535，则输出“超过最大数”

// 3）输出转换过的16位二进制数；

// 输入格式:

// 输入一个小于65536的正整数

// 输出格式：

// 二进制数每8位数字后空一格，不足16位补0，行末没有空格。

// 输入样例：

// 765

// 输出样例：

// 00000010 11111101

#include <stdio.h>

void DecToBin(int n, int *p);
int main()
{
    int decArr[16] = {0}, *p = &decArr[15], n;
    scanf("%d", &n);
    if (n < 0)
    {
        printf("数据小于0");
    }
    else if (n > 65535)
    {
        printf("超过最大数");
    }
    else
    {
        DecToBin(n, p);
        for (int i = 0; i < 8; i++)
        {
            printf("%d", decArr[i]);
        }
        printf(" ");
        for (int i = 8; i < 16; i++)
        {
            printf("%d", decArr[i]);
        }
    }

    return 0;
}

void DecToBin(int n, int *p)
{
    while (n)
    {
        *p-- = n % 2;
        n = n / 2;
    }
}